//
//  DYTableViewController.m
//  ShanghaiCard
//
//  Created by 帝云科技 on 2018/11/1.
//  Copyright © 2018 帝云科技. All rights reserved.
//

#import "DYTableViewController.h"
#import "XHQ_Define.h"
#define XHQ_iPhoneX (kScreenWidth == 375.f && kScreenHeight == 812.f ? YES : NO)
#define kScreenWidth [[UIScreen mainScreen] bounds].size.width
#define kScreenHeight [[UIScreen mainScreen] bounds].size.height
#define kTabBarHeight (XHQ_iPhoneX ? 83.f : 49.f)
#define kNavigationBarHeight 44.f
#define kStatusBarHeight (XHQ_iPhoneX ? 44.f : 20.f)
#define kNavigationStatusHeight (kStatusBarHeight + kNavigationBarHeight)
#define kTopHeight (kStatusBarHeight + kNavigationBarHeight)
#define kHomeIndicatorHeight (XHQ_iPhoneX ? 34.f : 0.f)

@interface DYTableViewController ()

@end

@implementation DYTableViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
}

- (void)dy_initData {
    [super dy_initData];
    _style = DYTableViewStylePlain;
}

- (void)dy_initUI {
    [super dy_initUI];
    [self.view addSubview:self.tableView];
}

#pragma mark - UITableViewDataSource
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return self.dataArray.count;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [self.dataArray[section] count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    DYTableViewCellItem *item = self.dataArray[indexPath.section][indexPath.row];
    DYTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:item.cellIdentifier forIndexPath:indexPath];
    cell.item = item;
    if (self.isHideSectionLastCellLine) {
        cell.hideSeparatorLabel = [self.dataArray[indexPath.section] count] == indexPath.row + 1;
    }
    return cell;
}

#pragma mark - UITableViewDelegate
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
    return ({
        UIView *view = [[UIView alloc]init];
        view.backgroundColor = [UIColor whiteColor];
        view;
    });
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    return ({
        UIView *view = [[UIView alloc]init];
        view.backgroundColor = [UIColor whiteColor];
        view;
    });
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    DYTableViewCellItem *item = self.dataArray[indexPath.section][indexPath.row];
//    if (item.cellHeight > 0) {
//        return item.cellHeight;
//    }else {
//        return [item.cellClass hyb_heightForTableView:tableView config:^(UITableViewCell *sourceCell) {
//            DYTableViewCell *cell = (DYTableViewCell *)sourceCell;
//            cell.item = item;
//        } cache:^NSDictionary *{
//            if (!item.cacheKey) {
//                return nil;
//            }
//            return @{kHYBCacheUniqueKey: item.cacheKey};
//        }];
//    }
    return item.cellHeight;
}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 0.01f;
}

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
    return 0.01f;
}

//#pragma mark - DZNEmptyDataSetSource
//- (NSAttributedString *)titleForEmptyDataSet:(UIScrollView *)scrollView {
//    NSMutableDictionary *attributes = [NSMutableDictionary dictionary];
//    attributes[NSForegroundColorAttributeName] = [UIColor xhq_assist];
//    attributes[NSFontAttributeName] = [UIFont xhq_font14];
//    NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:@"" attributes:attributes];
//    return attributedString;
//}
//
//- (UIImage *)imageForEmptyDataSet:(UIScrollView *)scrollView {
//    return [UIImage imageNamed:@"ic_zero"];
//}
//
//- (UIColor *)backgroundColorForEmptyDataSet:(UIScrollView *)scrollView {
//    return self.tableView.backgroundColor;
//}
//
//- (CGFloat)verticalOffsetForEmptyDataSet:(UIScrollView *)scrollView {
//    return -100.f;
//}
//
//#pragma mark - DZNEmptyDataSetDelegate
//- (void)emptyDataSetWillAppear:(UIScrollView *)scrollView {
//    scrollView.contentOffset = CGPointZero;
//}
//
//- (BOOL)emptyDataSetShouldAllowScroll:(UIScrollView *)scrollView {
//    return YES;
//}


#pragma mark - configureData
- (void)dy_configureData {
    
}

- (void)dy_configureDataWithModel:(DYModel *)model {
    
}

#pragma mark - getter
- (UITableView *)tableView {
    if (!_tableView) {
        UITableViewStyle style;
        switch (_style)
        {
            case DYTableViewStyleGrouped:
                style = UITableViewStyleGrouped;
                break;
            case DYTableViewStylePlain:
                style = UITableViewStylePlain;
                break;
        }
        CGRect frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight - kNavigationStatusHeight);
        _tableView = [[UITableView alloc] initWithFrame:frame style:style];
        _tableView.delegate = self;
        _tableView.dataSource = self;
        @weakify(self);
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.001 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            @strongify(self);
            self->_tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        });
        
//        [_tableView xhq_registerCell:[DYTableViewCell class]];
        [_tableView registerClass:[DYTableViewCell class] forCellReuseIdentifier:@"DYTableViewCell"];
        _tableView.backgroundColor = [UIColor whiteColor];
        _tableView.tableFooterView = [UIView new];
        _tableView.tableHeaderView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, CGFLOAT_MIN)];
        if (@available(iOS 11.0, *)) {
            _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
        }
        _tableView.estimatedRowHeight = 0;
        _tableView.estimatedSectionFooterHeight = 0;
        _tableView.estimatedSectionHeaderHeight = 0;
        
    }
    return _tableView;
}

- (NSMutableArray *)sectionArray0 {
    if (!_sectionArray0) {
        _sectionArray0 = [[NSMutableArray alloc]init];
    }
    return _sectionArray0;
}

- (NSMutableArray *)sectionArray1 {
    if (!_sectionArray1) {
        _sectionArray1 = [[NSMutableArray alloc]init];
    }
    return _sectionArray1;
}

- (NSMutableArray *)sectionArray2 {
    if (!_sectionArray2) {
        _sectionArray2 = [[NSMutableArray alloc]init];
    }
    return _sectionArray2;
}

- (NSMutableArray *)sectionArray3 {
    if (!_sectionArray3) {
        _sectionArray3 = [[NSMutableArray alloc]init];
    }
    return _sectionArray3;
}

- (NSMutableArray *)sectionArray4 {
    if (!_sectionArray4) {
        _sectionArray4 = [[NSMutableArray alloc]init];
    }
    return _sectionArray4;
}

- (NSString *)limitedListNumber {
    return @"20";
}

@end
